// pages/courseOrder/courseOrder.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    textItems:[
      {id:0,content:'这是第一条，往左滑动删除',time:'2021.9.2 14:00-2021.9.3 9:00',success:true},
      { id: 1, content: '这是第二条，往左滑动删除', success: false },
      { id: 2, content: '这是第三条，往左滑动删除', success: false },
    ],
    startX: 0, //开始坐标

    startY: 0
  },

  //手指触摸动作开始 记录起点X坐标

  touchstart: function (e) {
    //开始触摸时 重置所有删除

    this.data.textItems.forEach(function (v, i) {

      if (v.isTouchMove)//只操作为true的

        v.isTouchMove = false;

    })

    this.setData({

      startX: e.changedTouches[0].clientX,

      startY: e.changedTouches[0].clientY,

      textItems: this.data.textItems

    })

  },

  //滑动事件处理

  touchmove: function (e) {
    
    var that = this,

      index = e.currentTarget.dataset.index,//当前索引

      startX = that.data.startX,//开始X坐标

      startY = that.data.startY,//开始Y坐标

      touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标

      touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标
      
      //获取滑动角度

      angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });

    that.data.textItems.forEach(function (v, i) {

      v.isTouchMove = false

      //滑动超过30度角 return

      if (Math.abs(angle) > 30) return;

      if (i == index) {

        if (touchMoveX > startX) //右滑

          v.isTouchMove = false

        else //左滑

          v.isTouchMove = true

      }

    })

    //更新数据

    that.setData({

      textItems: that.data.textItems

    })

  },

  /**
  
  * 计算滑动角度
  
  * @param {Object} start 起点坐标
  
  * @param {Object} end 终点坐标
  
  */

  angle: function (start, end) {

    var _X = end.X - start.X,

      _Y = end.Y - start.Y

    //返回角度 /Math.atan()返回数字的反正切值

    return 360 * Math.atan(_Y / _X) / (2 * Math.PI);

  },

  //删除事件

  del: function (e) {
    wx.showModal({
      title: '提醒',
      content: '确认要删除该订单信息吗？',
      success:(res)=> {
        if (res.confirm) {
          this.data.textItems.splice(e.currentTarget.dataset.index, 1)
          this.setData({
            textItems: this.data.textItems
          })
        } else if (res.cancel){
          console.log('误点')
        }
      }
    })
    

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (e) {
    // var that = this;

    //common是自己写的公共JS方法，可忽略

    // common.sys_main(app, that, e);

    for (var i = 0; i < this.data.textItems.length; i++) {

      this.data.textItems[i].isTouchMove = false

    }

    // this.setData({

    //   items: this.data.items

    // });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})